import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit

# 数据
x = np.array([0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0,1.1,1.2])  # 出价
y = np.array([100, 190, 189, 230, 300, 400, 460, 500, 535, 600,610,615])  # 结果

# 拟合一个多项式函数，假设是二次多项式
def polynomial(x, a, b, c):
    return a * x**2 + b * x + c

# 使用 curve_fit 拟合数据
coefficients, covariance = curve_fit(polynomial, x, y)

# 生成拟合的多项式函数
a, b, c = coefficients

# 打印拟合方程
print(f"拟合方程: y = {a:.4f}x^2 + {b:.4f}x + {c:.4f}")

# 绘制原始数据和拟合曲线
plt.scatter(x, y, label='原始数据')
plt.plot(x, polynomial(x, a, b, c), color='red', label='拟合曲线')
plt.xlabel('出价')
plt.ylabel('结果')
plt.title('数据拟合')
plt.legend()
plt.show()
